1. Field of the Invention
The present invention relates to controlling a server environment such as a cloud computing system. More particularly, it relates to dynamically changing resources to be provided to a client by the server environment, in response to a change in a service request from the client.
2. Description of Related Art
In recent years, data transfer rate among computers has increased because of the improvement in the communication infrastructure. Along with this trend, it has become possible to place a host computer not in a company but in a remote location such as overseas. This has led to emergence of vendors who set many servers and lend users predetermined applications, computation resources, storages, and the like for use. Such a mode of using computer resources is called cloud computing.
There are the following types of cloud computing.                SaaS (Software as a service): This is a type in which software is provided as a service. For example, clients are allowed to use a payroll calculating program.        PaaS (Platform as a service): This is a type in which a platform is provided as a service. Generally, this type is characterized in that application can be run without consideration of scaling. Specifically, as service requests from clients increase, the vendor of cloud computing automatically adds resources, and does not make the clients feel deterioration in performance. The platform includes middleware such as a database, an application execution environment, and a management tool.        IaaS (Infrastructure as a service): This is a type which provides an infrastructure such as a virtual machine and storage. Desired operating system or middleware can be installed in the provided infrastructure. In this case, clients have to consider the scaling.        
One of the advantages of cloud computing, particularly with PaaS, is that the scale of servers can be flexibly changed in response to a change in the amount of service request.
A load balancer is one system which satisfies such a demand. For example, WebSphere (trademark) Virtual Enterprise can handle an increasing amount of requests within the capacity of multiple servers prepared in advance. However, in order to implement the system of load balancer, multiple servers are required to be prepared and run in advance. In this case, however, when clients are charged for all the active server instances, the charge is high.
A cloud API is another system. For example, Amazon (trademark) Web Service or the like do not control creation, launching and the like of server instances in a cloud. However, the cloud API has a problem that times required for the creation and launching of server instances are too long.
Japanese Patent Application Publication No. Hei 11-282695 relates to a method and an apparatus for controlling the number of servers in a multisystem cluster. In this technique, incoming work requests are organized into service classes, and each of the classes has a queue served by servers across the cluster. Each service class is assigned in advance a predetermined performance index. Each system selects one service class as a donor class for donating system resources and another service class as a receiver class for 2011-086958 receiving system resources, based upon how well the service classes are meeting their goals. If the resource bottleneck causing the receiver class to miss its goals is the number of servers, each system determines how many servers should be added to the receiver class, based upon whether the positive effect of adding such servers on the performance index for the receiver class exceeds the negative effect of adding such severs on the performance index for the donor class.
Japanese Patent Application Publication No. 2002-163241 relates to dynamic reconfiguration of resources of a service provider in response to a change in demand. In the system disclosed herein, a load balancer assigns an access request (service request) from each client 1 to one of servers operating in a server cluster. Then, when the access increases or decreases, a management module gives an instruction to change the configuration of the server cluster, and adds a sever 6 to the server cluster or removes a server from the server cluster or the like. The management module reflects the change in configuration of the server cluster in an access assignment target list of the load balancer.
Japanese Patent Application Publication No. 2003-162516 relates to a high-speed large-volume-data processing system capable of dynamic and static configurations of resources such as networks, processors, and data storages and of dynamic and static allocation of data processing works in order to handle data processing requests of large-volume data issued from multiple users. Japanese Patent Application Publication No. 2003-162516 discloses a multiprocessor system and a data storage system which include a network backend server connecting multiple high-speed data processing devices and multiple data storage devices together via an ultra-high-speed network. In response to data processing requests issued from multiple terminal devices, the multiprocessor system and the data storage system can process large-volume-data at high speed by using a function of dynamically and statically distributing a network load and a data processing load. To this end, with the positions of the data storages in the network, the network load, and the data processing load dynamically and statically taken into consideration, a network topology and a processor topology are dynamically and statically configured and the data processing works are dynamically and statically distributed to the multiple high-speed data processing devices.
Japanese Patent Application Publication No. 2005-141605 relates to a resource distribution method capable of sharing excess resources among multiple services and thus reducing the maintenance cost of the excess resources. In this resource distribution method, a standby computer resource is in a dead standby state where at least no application is installed and the computer resource in the dead standby state is shared among multiple services or multiple users. This achieves an improvement in usage rate of idle computer resources and integration of servers, thereby leading to reduction in cost required to maintain the computer resources. Moreover, load prediction is performed by using operation histories of respective services, and idle computer resources reserved and kept for services are inputted to the services according to the prediction result, starting from a service predicted to have an excess resource.
Japanese Patent Application Publication No. 2009-37369 discloses a technique to solve a problem that a batch process cannot be completed within a preset requested time due to increase in data amount or simultaneous execution of multiple batch processes. In the technique, a processing time and a resource usage amount of a batch process procedure not yet executed are calculated based on a processing time and a resource usage amount of already-executed SQL, during execution of batch processes. Thereafter, the process procedure and the resource usage amounts are recalculated by using information on OS such as the number of I/O and a CPU load and information indicating the state of database server such as a buffer hit ratio. Then, the resources are allocated as needed.
The following non-patent literature in this technical field provides further background.
Donald Kossmann, Tim Kraska, Simon Loesing: An evaluation of alternative architectures for transaction processing in the cloud, SIGMOD 2010, pp. 579-590 describes transaction processing in cloud computing.
Tim Kraska, Martin Hentschel, Gustavo Alonso, Donald Kossmann: Consistency Rationing in the Cloud: Pay only when it matters. VLDB 2009, pp. 253-264 describes a transaction paradigm that not only allows designers to define the consistency guarantees on the data, but also allows to switch consistency guarantees at runtime.
Carsten Binnig, Donald Kossmann, Tim Kraska, Simon Loesing: How is the weather tomorrow?: towards a benchmark for the cloud. DBTest 2009 describes benchmarking such as scalability and fault-tolerance of a system of cloud computing.
These conventional arts each teach a technique with which a cloud computing system allocates resources as needed in response to a service request.
Meanwhile, particularly in PaaS, there is a demand for a technique which efficiently allocates resources to dynamically-changing loads of service requests while satisfying required speed and certainty. However, the conventional arts described above do not sufficiently meet such a demand.